const app = getApp()
var timeCount = null
import { customerList, customerPublicType, customerSmall, customerBig, customerStart, customerEnd } from "../../common/static/api_data.js"
import filter from '../../mixins/filter';
import formSumbit from '../../mixins/form_submit'
import tab_index from '../../mixins/tab_index'
import { HiddenCall } from '../../request/api.js'
const request = new HiddenCall
Page({
/**
*  客源列表页
* - @author           狄兆璐
* - @date             2018-0７-0３
* customerList      客源搜索条件
* small                  筛选最小值
* big                     筛选最大值
* start                   筛选时间初始
* end                    筛选时间结束
* customerPublicType   客源状态
* tabbarConfig     tabber 数据
* isHideTabbar     隐藏头部导航栏
* searchData        筛选条件model
* filterData           搜索条件model
* customerSmall  客源筛选最小值
* customerBig      客源最大值
* customerStart    客源初始时间
* customerEnd     客源结束时间
*/
  mixins: [filter, formSumbit, tab_index],
  data: {
    customerList,
    page: 1,
    customerPublicType,
    customerPageWhereVO: {},
    searchData: {},
    flag: 0,
    filterData: {}
  },
  onLoad: function (options) {
    // 隐藏导航栏dzl
    // this.hideNavBar()
    // 获取客源列表
    this.customerList({ "page": 1, "size": 21, 'customerPageWhereVO	': this.data.customerPageWhereVO }, "loading")
    // 获取区域和屏幕高度
    this.getHeight()
    wx.showNavigationBarLoading()
    // this.refreshView = this.selectComponent("#refreshView")
  },
  onShow: function () {
    // 获取子事件
    app.globalData.customerFilter = this.selectComponent("#customerSearch")
  },
  /**
   * 选择筛选客源需求区域
   */
  regionChange: function (e) {
    // 调用筛选组件事件
    // 获取选中的客源区域
    this.setData({
      regionList: e.detail.model,
      regionValue: e.detail.value.value
    })
  },
  /**
  * 下拉刷新客源列表数据
  * author dzl
  */
  onPullDownRefresh() {
    wx.showNavigationBarLoading()
    // 重置页数
    this.setData({ page: 1 })
    // 带着筛选条件刷新列表
    if (this.customer !== undefined && Object.keys(this.customer).length > 2) {
      this.customer.page = 1
      this.customer.size = 21
      this.customerList(this.customer)
    } else {
      // 无筛选条件普通刷新列表
      this.customerList({ "page": 1, "size": 21, "housePageWhereVO": {} })
    }
  },
  /**
  * 上拉加载客源列表操作
  * author　dzl
  */
  onReachBottom() {
    // 设置加载的页数
    wx.showNavigationBarLoading()
    this.data.page += parseInt(this.data.count)
    // 带着条件加载数据列表
    if (this.customer !== undefined && Object.keys(this.customer).length > 2) {
      this.customer.page = this.data.page
      this.pullData(this.customer)
    } else {
      // 无筛选条件加载普通列表
      this.pullData({ "page": this.data.page, "size": 21, "housePageWhereVO": {} })
    }
  },
  /**
   * 上拉加载客源列表数据
   */
  pullData: function(model) {
    // 数据全部加载完数据之后，禁止调用接口
    if (this.data.data.content.length === this.data.data.count) {
      wx.hideNavigationBarLoading()
      return
    }
    // 获取到加载数据
    request.customerList(model).then(res => {
      // 循环往渲染model添加
      res.content.forEach(res => {
        this.data.data.content.push(res)
        // 赋值更新
        this.setData({
          data: this.data.data
        })
      })
      wx.hideNavigationBarLoading()
    })
  },
  /**
    * 分享客源列表显示复选框
    * author dzl
    */
  shareBtn: function (e) {
    // 显示分享按钮赋予true
    this.setData({
      clickbtn: e.detail
    })
  },
  /**
    * 取消分享客源列表隐藏复选框
    * author dzl
    */
  cancelShare: function (e) {
    // 隐藏分享按钮
    this.setData({
      clickbtn: e.detail
    })
  },
  /**
  * 选择客源列表分享的数据
  * author dzl
  */
  bindchange: function (e) {
    // 点击拿到选中的值
    let houseCode = e.detail.value
  },
  /**
  * 查询客源列表数据
  * author dzl
  */
  customerList: function (model, loading) {
    let that = this
    timeCount = setInterval(() => {
      this.data.flag += 1
      if (this.data.flag > 0) {
        that.setData({ animation: true })
      }
    }, 200)
    // 调用房源列表接口
    request.customerList(model).then(res => {
      // 有数据赋值更新渲染，获取页数
      if (res) {
        this.setData({
          data: res,
          count: res.page
        })
        wx.stopPullDownRefresh()
        wx.hideNavigationBarLoading()
        // 停止计算
        clearInterval(timeCount)
        timeCount = null
        that.setData({ animation: false })
      }
    }).catch((err) => {
      // 存储错误信息
      this.setData({ errCode: err })
    })
  },
  /**
   * 点击搜索符合搜索条件的客源列表数据
   * author wl
   */
  searchCustomer(e) {
    if (app.globalData.filterData) {
      this.setData({
        filterData: app.globalData.filterData
      })
    }
    // 是否有搜索条件，无给与对象
    this.customer = e ? e.detail : {}
    // 设置页数和数量
    this.customer.page = 1
    this.customer.size = 21
    // 循环将筛选条件赋予搜索model
    this.searchPool(this.data.filterData, this.customer)
    // 带着条件获取数据
    this.customerList(this.customer)
    // 重置页数
    this.setData({ page: 1 })
  },
  /**
   * 进入房源筛选
   * author wl
   */
  filterbar() {
    wx.navigateTo({
      url: `../customer_filter/index`
    })
  }
})
